#ifndef LOGREADER_H
#define LOGREADER_H

#include <QObject>
#include <QTextStream>
#include <QFile>
#include <QJsonObject>
#include <QJsonArray>
#include <memory>
#include <QProgressDialog>






QT_BEGIN_NAMESPACE


class LogReader : public QObject
{
    Q_OBJECT
public:
    explicit LogReader(QObject *parent = nullptr);
    ~LogReader();

    // 打开文件
    // LogReader(QString filePath);
    // void openFile(QString filePath);
    void addFile(const QString& filePath);
    // 根据json对象获取数据, 列表的每个元素是每个周期各变量的值
    void getValueFromLog(
        const QString& cycleFeatures,
        const std::shared_ptr<QJsonArray>& valueArray);



private:
    // 获取下一个周期
    QString getNextCycle(const QString& cycleFeatures);



signals:
    void readFinished(QHash< QString, QVector< std::shared_ptr<int> > > res);
    void readOneFinished();
    void sendReadVar(int index);
    void sendTotalVarCount(int number);

private:
    std::unique_ptr<QString> p_text = Q_NULLPTR;     // 文件指针
    std::unique_ptr<QTextStream> p_textIn = Q_NULLPTR;   // 文件流指针
    QStringList m_fileList;
};

QT_END_NAMESPACE

#endif // LOGREADER_H
